An Eecient Abstract Machine for Curry

نویسندگان

  • Wolfgang Lux
  • Herbert Kuchen
چکیده

The functional logic programming language Curry integrates features from functional logic and concurrent programming It combines lazy evaluation higher order functions logic variables partial data struc tures built in search and the concurrent evaluation of equational con straints Curry amalgamates the most important operational principles developed in the area of integrated functional logic languages residua tion and narrowing The e ects of non determinism stemming from the narrowing semantics can be encapsulated using the primitive try oper ator This is necessary to implement declarative I O in the presence of non deterministic computations and allows to implement di erent search strategies In the present paper we develop an abstract machine for the implemen tation of Curry The focus in this paper will be on the e cient imple mentation of encapsulated search in a lazy functional logic language

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Abstract Machine for Curry and Its Concurrent Implementation in Java

Curry is a multi-paradigm declarative language aiming to amalgamate functional, logic, and concurrent programming paradigms. Curry combines in a seamless way features from functional programming and (concurrent) logic programming. Curry’s operational semantics is based on the combination of lazy reduction of expressions together with a possibly non-deterministic binding of free variables occurr...

متن کامل

Eecient Strictness Analysis of Haskell in Haskell Using Abstract Reduction

The extraction of strictness information marks an indispensable element of an eecient compilation of lazy functional languages like Haskell. Based on the method of abstract reduction we have developed an eecient strictness analyser for a core language of Haskell. It is completely written in Haskell and compares favourably with known implementations. The implementation is based on the G #-machin...

متن کامل

Functions as processes: termination and the λ̄μμ̃-calculus

The λ̄μμ̃-calculus is a variant of the λ-calculus with significant differences, including non-confluence and a Curry-Howard isomorphism with the classical sequent calculus. We present an encoding of the λ̄μμ̃-calculus into the π-calculus. We establish the operational correctness of the encoding, and then we extract from it an abstract machine for the λ̄μμ̃-calculus. We prove that there is a tight rel...

متن کامل

A Calculus for Interaction Nets Based on the Linear Chemical Abstract Machine

Interaction nets are graph rewriting systems which are a generalisation of proof nets for classical linear logic. The linear chemical abstract machine (CHAM) is a term rewriting system which corresponds to classical linear logic, via the Curry-Howard isomorphism. We can obtain a textual calculus for interaction nets which is surprisingly similar to linear CHAM based on the multiplicative fragme...

متن کامل

An Implementation Model of the Typed -calculus Based on Linear Chemical Abstract Machine

Abramsky's Linear Chemical Abstract Machine is a term calculus which corresponds to Linear Logic, via the Curry-Howard iso-morphism. We show that the typed-calculus is embedded into Linear Chemical Abstract Machine by Girard's embedding of Intuitionistic Logic into Linear Logic. Then we extend our result to a simple functional programming language obtained from the typed-calculus by adding cons...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007